Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > 日本語 - Japanese > XPages Social Enabler で Twitter と連携する方法
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

Community articleXPages Social Enabler で Twitter と連携する方法
Added by ~Rebecca Minfreevitchobu | Edited by ~Rebecca Minfreevitchobu on November 6, 2012 | Version 3
expanded Abstract
collapsed Abstract
XPages Social Enabler ではさまざまなソーシャルメディアやクラウドサービスをデータソースとして利用し、XPages アプリケーションの中で表示したり、メッセージやコンテンツを投稿するなどの連携を行うことができます。Social Enabler では Twitter と連携するための仕組みを提供しています。この記事では、XPages Social Enabler を使用するための構成の手順と、Twitter のデータを XPages アプリケーションで表示する簡単なアプリケーションを紹介します。
Tags: social enabler, twitter
ShowTable of Contents
HideTable of Contents
  • 1 はじめに
  • 2 Twitter を使用するための構成
  • 3 Twitter と連携するシンプルなアプリケーション
    • 3.1 faces-config.xml の設定
    • 3.2 Data View コントロールによる Twitter の表示
    • 3.3 サンプルコード

はじめに


XPages Social Enabler ではさまざまなソーシャルメディアやクラウドサービスをデータソースとして利用し、XPages アプリケーションの中で表示したり、メッセージやコンテンツを投稿するなどの連携を行うことができます。Social Enabler では Twitter と連携するための仕組みを提供しています。この記事では、XPages Social Enabler を使用するための構成の手順と、Twitter のデータを XPages アプリケーションで表示する簡単なアプリケーションを紹介します。

この記事の内容を実践するには、あらかじめ XPages Extension Library が導入された Domino 環境で、Social Enabler が利用できるように構成されている必要があります。Social Enabler の構成については [T.B.D.] の記事が参考になります。

Twitter を使用するための構成



[1] Twitter でのアプリケーションの登録

1. https://dev.twitter.com/external link を開く

2. 右上で sign in リンクをクリックしログイン

3. Create an app リンクをクリック

4. Create an application ページで適当に入力する。私の場合は以下のように入力

Name: KomineTest
Description: Hiro Komine's test application
Website: http://nd853lab.lotus.com/external link
Callback URL: http://nd853lab.lotus.com/external link

※ ここで指定するアプリケーション名(この例では「KomineTest」)は、あとで WebSecurityStore.nsf に指定する Application Id と一致する必要はない。

5. どこだか忘れたけど Access level を設定
Access level: Read and write

6. 作成後 My applications リンクで内容を確認
以下のような OAuth の設定が表示されるので記録

Access level: Read and write
Consumer key: <アプリケーション毎に割り振られた文字列> Consumer secret: <アプリケーション毎に割り振られた文字列> Request token URL: https://api.twitter.com/oauth/request_tokenexternal link
Authorize URL: https://api.twitter.com/oauth/authorizeexternal link
Access token URL: https://api.twitter.com/oauth/access_tokenexternal link

[2] WebSecurityStore.nsf に登録

1. http://<server>/websecuritystore.nsf/KeysApplications.xsp を開く

2. Add Token リンクで以下を設定
Application Id: XPagesSBT
Service Name: Twitter
Consumer Key: <アプリケーション毎に割り振られた文字列> Consumer Key Type: HMAC-SHA1
Consumer Secret: <アプリケーション毎に割り振られた文字列> Request Token Uri: https://api.twitter.com/oauth/request_tokenexternal link
Authorization Uri: https://api.twitter.com/oauth/authorizeexternal link
Access Token Uri: https://api.twitter.com/oauth/access_tokenexternal link

3. 保存後、http://<server>/xpagessbt.nsf を開き、Twitter タブを選択

4. Social Enabler によって Twitterとの OAuth の認可のプロセスが行われる。Twitter のログイン画面が表示され、その後、アプリケーションから Twitter へのアクセスを許可する画面が表示される。


Twitter と連携するシンプルなアプリケーション



faces-config.xml の設定


XPages Social Enabler で Twitter と連携させるためには、Twitter をデータソースとして使用するための設定を、NSF ファイル内の faces-config.xsl に記載する必要がある。faces-config.xsl ファイルは Domino Designer のアプリケーションナビゲーターで表示されないので、パッケージエクスプローラーなどを開いて表示する。
Social Enablerのサンプル NSF の記載が参考になるが、Twitter を動かすためだけの最低限の設定は以下になる。

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
  <!--
        Token store physical implementation This store uses an NSF database to store both the access and the consumer tokens.
    -->
  <managed-bean>
    <managed-bean-name>NSFStore</managed-bean-name>
    <managed-bean-class>com.ibm.xsp.extlib.sbt.security.oauth_10a.store.OAuthNSFTokenStore
		</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    <managed-property>
      <property-name>database</property-name>
      <value>WebSecurityStore.nsf</value>
    </managed-property>
  </managed-bean>
  <!--
        Twitter 
   -->
  <managed-bean>
    <managed-bean-name>twitter</managed-bean-name>
    <managed-bean-class>com.ibm.xsp.extlib.sbt.services.client.endpoints.TwitterEndpoint
		</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    <!-- Endpoint URL -->
    <managed-property>
      <property-name>url</property-name>
      <value>https://api.twitter.com</value>
    </managed-property>
    <managed-property>
      <property-name>serviceName</property-name>
      <value>Twitter</value>
    </managed-property>
    <managed-property>
      <property-name>appId</property-name>
      <value>XPagesSBT</value>
    </managed-property>
    <!-- OAuth parameters -->
    <managed-property>
      <property-name>tokenStore</property-name>
      <value>NSFStore</value>
    </managed-property>
  </managed-bean>
</faces-config>


Data View コントロールによる Twitter の表示


Twitter のデータを表示するためには、Data View コントロールを使用する。
Data View コントロールの作成時に表示されるダイアログでは、データソースとして Twitter を選択できないので、一旦 Data View コントロールを作成後に、「すべてのプロパティ」で設定を行う。
  • 「データ」→「data」 プロパティ: xe:twitterData を選択する。
  • 「データ」→「data」 タブの設定
    • 「endPoint」プロパティ: twitter
    • 「scope」プロパティ: view
    • 「var」プロパティ: twitterData1
  • 「データ」→「data」 →「基本」タブの設定
    • 「feedType」プロパティ: 表示したい内容に応じて選択
「feedType」プロパティの設定値
説明
timeLine自分のタイムライン
publicTimeLineパブリックなタイムライン
mentions自分のつぶやき
rtByMe自分がリツィートしたつぶやき
rtToMe 自分宛てにリツィートされたつぶやき
rtOfMe リツィートされた自分のつぶやき



サンプルコード


<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:this.beforePageLoad><![CDATA[#{javascript:
if(!@Endpoint("twitter").isAuthenticated()) {
    @Endpoint("twitter").authenticate(true);
}
    }]]>
    </xp:this.beforePageLoad>
    <xe:dataView rows="8" expandedDetail="true" var="tweet">
        <xp:this.data>
            <xe:twitterData var="twitterData1" endpoint="twitter"
                scope="view">
            </xe:twitterData>
        </xp:this.data>
        <xp:this.facets>
            <xe:pagerAddRows id="pagerAddRows1" xp:key="pagerBottom">
            </xe:pagerAddRows>
            <xp:panel xp:key="summary" id="panel1"
                style="display:inline-block">
                <xp:link id="link1"
                    style="text-decoration:none;font-weight:bold;"
                    text="#{tweet.author}">
                </xp:link>
            </xp:panel>
            <xp:panel xp:key="detail" id="panel2">
                <xp:text id="computedField2" escape="false"
                    contentType="twitterContent">
                    <xp:this.value>
                        <![CDATA[#{javascript:tweet.title}]]>
                    </xp:this.value>
                </xp:text>
            </xp:panel>
            <xp:panel xp:key="aaa">
            <xp:text escape="true" id="computedField1"></xp:text></xp:panel>
        </xp:this.facets>
    </xe:dataView>
</xp:view>
expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (13)
collapsed Versions (13)
Version Comparison     
VersionDateChanged by              Summary of changes
13Mar 18, 2013, 7:39:52 AM~Lex Quetfreemanynds  Minor change
12Mar 18, 2013, 7:27:35 AM~Vanessa Minfanalyobu  Twitter でのアプリケーションの登録の画面キャプチャー追加
11Nov 12, 2012, 12:19:08 AM~Rebecca Minfreevitchobu  
10Nov 12, 2012, 12:17:41 AM~Rebecca Minfreevitchobu  
9Nov 12, 2012, 12:02:09 AM~Rebecca Minfreevitchobu  
8Nov 12, 2012, 12:01:13 AM~Rebecca Minfreevitchobu  
7Nov 12, 2012, 12:00:14 AM~Rebecca Minfreevitchobu  
6Nov 11, 2012, 11:58:24 PM~Rebecca Minfreevitchobu  
5Nov 11, 2012, 11:56:55 PM~Rebecca Minfreevitchobu  
4Nov 7, 2012, 2:08:00 AM~Rebecca Fezresaster  
This version (3)Nov 6, 2012, 10:32:37 AM~Rebecca Minfreevitchobu  
2Nov 6, 2012, 10:30:42 AM~Rebecca Minfreevitchobu  
1Nov 6, 2012, 9:57:52 AM~Rebecca Minfreevitchobu  
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL
  • Privacy
  • Accessibility